/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.Elementos.Naves;

import gradius.InterfaceGrafica.TelaGrafica;
import gradius.Elementos.Tipos.tipoNave;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;

/** Classe Factory que retorna instâncias de naves. Também monta o vetor de imagens das naves animadas.
 * @author Eduardo
 */
public class NaveFactory
{
    /** Construtor da classe NaveFactory
     */
    private NaveFactory()
    {
    }

    /** Método que retorna instâncias das naves e monta o vetor de imagens para naves animadas.
     * @param tela - Painel de desenho do jogo
     * @param tipo - Tipo de nave
     * @param coordX - Coordenada do eixo horizontal
     * @param coordY - Coordenada do eixo vertical
     * @return Nave - Naves do jogo
     */
    public static Nave getInstance(TelaGrafica tela, tipoNave tipo, int coordX, int coordY)
    {
        if (tipo == tipoNave.VICVIPER)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/vicviper/vicviper" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Vicviper(tela,imagens,coordX,coordY,100,40);
        }
        else if (tipo == tipoNave.CHEETOS1)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/cheetos1/c" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Cheetos1(tela,imagens,coordX,coordY,40,30);
        }
        else if (tipo == tipoNave.CHEETOS2)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/cheetos1/c" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Cheetos2(tela,imagens,coordX,coordY,40,30);
        }
        else if (tipo == tipoNave.ATIRADORA1)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/atiradora/a" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Atiradora1(tela,imagens,coordX,coordY,90,32);
        }
        else if (tipo == tipoNave.BIGCORE)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/bigcore/b" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new BigCore(tela,imagens,coordX,coordY,200,162);
        }
        else if (tipo == tipoNave.EXPLOSAO)
        {
            Image[] imagens = new Image[10];
            for (int i = 0; i < imagens.length; i++)
            {
                String filename = "/images/explosao/e" + i + ".png";
                URL url = NaveFactory.class.getResource(filename);
                imagens[i] = Toolkit.getDefaultToolkit().getImage(url);
            }
            return new Explosao(tela,imagens,coordX,coordY,50,50);
        }
        return null;
    }
}
